1. The Field of the Invention
The present invention relates generally to computer-aided design or drafting software.
2. Background and Relevant Technology
As computerized systems have increased in popularity so have the range of applications that incorporate computational technology. Computational technology now extends across a broad range of applications, including a wide range of productivity and entertainment software. Indeed, computational technology and related software can now be found in a wide range of generic applications that are suited for many environments, as well as fairly industry-specific software.
One such industry that has employed specific types of software and other computational technology increasingly over the past few years is that related to building and/or architectural design. In particular, architects and interior designers (“or designers”) use a wide range of computer-aided design (CAD) software for designing the aesthetic as well as functional aspects of a given residential or commercial space. For example, a designer might use a CAD program to design the interior layout of an office building. The designer might then render the layout to create a three-dimensional model of the interior of the office building that can be displayed to a client.
While three-dimensional rendering is becoming a more common feature in CAD programs, three-dimensional rendering is a fairly resource intensive process. For example, a traditional rendering program can take anywhere from several minutes to several hours to appropriately render all of the lighting and shading effects of a given space with accuracy. This may be particularly inconvenient to a designer who has to wait for the scene to render after making a change to the layout of the scene. Alternatively, some rendering programs may use methods of rendering that result in less realistic images to speed up the rendering and use fewer resources. Such programs may do so by, for example, rendering fewer features within the scene or by using pre-rendered elements that do not necessarily correspond with the actual scene being rendered.
For example, one conventional mechanism to increase rendering speed is by pre-baking all or part of the entire scene. In some cases, for example, the layout of a scene may be rendered well before the user's interaction with the scene. In other cases, certain features of a scene will be pre-rendered using generic assumptions about lighting sources and later added to a customized or variable scene to minimize rendering resources when the user encounters that particular feature. One will appreciate that this approach relies on advanced knowledge of the scene layout and components, or, alternatively, a minimalist view of the scene that sacrifices realism for processing speed.
Some of the more complex effects in rendering have to do with lighting. With specific respect to light or lighting effects some conventional mechanisms increase rendering speed by only accounting for a small number of light sources in a scene. Doing this may increase the rendering speed by lowering the number of lighting and shading effects that are calculated. This method of ignoring light sources within a scene results in a three-dimensional model with less realistic lighting and shading effects.
Accordingly, there are a number of problems in the art relating to rendering lighting and shading effects in three-dimensional scenes in real-time that can be addressed.